package classes.graphicalEngine
{
    import flash.geom.Point;
    
    
    /**
    * Un noeud du parcours de la recherche de chemin (le plus court !)
    */
    public class Noeud {
        
        /** La position de ce noeud dans la matrice **/
        public var position:Point;
        
        /** Parent du noeud **/
        public var parent:Point;
        
        /** F est égal à la somme de G et H **/
        public var f:int;
        
        /** G est le coût pour arriver là (calculé) **/
        public var g:int;
        
        /** H est le coût supposé pour arriver à un point à partir d'ici (heuristique) **/
        public var h:int;
        
        
        /**
        * Constructeur
        */
        public function Noeud(pos:Point, p:Point, ff:int, gg:int, hh:int) {
            // on initialise tous les attributs
            this.position = pos;
            this.parent = p;
            this.f = ff;
            this.g = gg;
            this.h = hh;
        }
        
        
        /**
        * Renvoie 0 si a.f = b.f, 1 si a.f > b.f, -1 sinon
        */
        public static function trieur(a:Noeud, b:Noeud):Number {
            if (a.f > b.f) {
                return 1;
            } 
            else if (a.f < b.f) {
                return -1;
            }
            else {
                return 0;
            }
        }
        
    }
    
}